This disclosure relates generally to methods and systems for a high level interface allowing users to express geovisualization requests in an intuitive manner without requiring a user to rely on pre-programmed “static” predicates. More particularly, but not by way of limitation, this disclosure relates to a method and system for abstracting interface functions and allowing “dynamic predicates” when interacting with a set of one or more geospatial data storage facilities. Thereby a user is able to obtain results from ad-hoc queries as opposed to pre-defined and programmed user interface filtering functions.
An important element of all data interrogation is the capability of filtering. A user can cull the dataset based on selection criteria to focus on a subset of the available information with the geovisualization server hiding extraneous data during analysis. Each geovisualization application typically has the capability to render data dynamically during a user session and apply filters against the dynamically changing data. However, in the prior art, the predicates are static in the sense that the requirement to apply the filter must be identified before a user session begins and programmed into the interface before runtime. Thus, dynamic predicates allow for redefining query structure and information without an end user requirement to initiate a new session or application process.
Because it may not always be possible for users to predict what kinds of filtering criteria they may be interested in before a session begins, many iterations of programmer and user interaction may be required to produce a desired view of the data.
Current user interfaces to geospatial storage facilities and databases in general utilize static predicates. The use of static predicates requires a programmer to pre-define filtering functions into a user interface and does not allow for the more flexible ad-hoc queries that may be achieved with dynamic predicates.
Worldwide corporations, for example, airlines and freight carriers, typically collect and retain a variety of information with a geospatial context (e.g. aircraft location, truck location, package location, customer data and route information). A geographic information system (GIS) is a system for capturing, storing, analyzing and managing data and associated attributes which are spatially referenced to Earth. GIS technology can be used for many things including, scientific investigations, resource management, asset management, environmental impact assessment, urban planning, cartography, sales, marketing and logistics.
Geospatial computer applications such as Google Earth (available from Google incorporated), NASA World Wind (available from the National Aeronautics and Space Administration), and Microsoft Windows Live Maps (available from Microsoft incorporated), among others, allow for access to geovisualization of information by use of specific data interrogation techniques. While these data interrogation techniques provide for some flexibility, they are mostly limited in the realm of filtering because they use predefined predicates. However, iterative refinement of filtering during a session by means of dynamic predicates allows a more flexible and analytic potential because it allows for more flexible ad-hoc queries by a user. In general, dynamic predicates allow a user to invent new questions in the form of queries for information.
In the prior art, a user interface typically has the restriction imposed on filtering by predefined static predicates. That is to say that a query takes the form “what are the flight paths of all the aircraft departing or arriving from cities AAA over the time period XXX to YYY?” Note that a user is therefore restricted to simply requesting information by filling in variables at pre-defined locations in the query.
In contrast to static predicates of the prior art, a dynamic predicate is not confined to a single prescribed form, but instead, may draw upon and combine properties from accessible data to form an ad hoc question. For example, if some of the properties of available data were “city,” “flight paths,” and “time” then an embodiment of a dynamic predicate would involve some logical arrangement of those properties in question form such as “what are the flight paths of all the aircraft departing or arriving from cities AAA over the time period XXX to YYY” or alternatively “what are the flight paths of all the aircraft departing or arriving from cities AAA not before XXX” or many other conceivable, but not predefined, forms. With dynamic predicates a user is able to alter the request in a more flexible manner without having to stop and start the session or re-enter the entire and possibly complex query A useful analogy for contrasting static and dynamic predicates would be as two differing strategies for the creation of poetry. In the case of static predicates, a strict “poem template” would be provided along with a series of specific choices to fill in gaps in the template. For example: “Roses are (red/crimson), violets are (blue/cobalt).” Here only four possible poems exist, all starting with the word “Roses.” Alternatively, a set of words could be provided {“roses”, “violets”, “are”, “is”, “red”, “crimson”, “blue”, “cobalt”} along with the restriction “construct only arrangements of the given words that form grammatically valid sentences.” As such, many differing poems could be constructed such as “Roses are crimson, violets are blue” or “Crimson is red, cobalt is blue,” among many others. Static predicates are analogous to the former strategy while dynamic predicates are similar to the latter.
The Analytical Geoquery Language (AGL) described herein provides for dynamic predicates by defining the vocabulary, mechanisms for the creation of new vocabulary, and the grammatical rules that govern the structure of a “valid” sentence. Standardizing on a common high level interface for expressing queries with geospatially significant results intended for rendering in geovisualization systems allows for abstracting away specific details of the visualization layer's data injection technique. A user need not be bothered with the details of programming languages such as Keyhole Markup Language (KML) or Jscript (a programming language developed by Microsoft) when incorporating visualization capability, but instead may focus on the logical relationships within the data itself. Furthermore, because the AGL input is not tied to any specific geovisualization server or underlying programming language, a user is not bound to information residing in a particular data repository or a specific geovisualization implementation. In one embodiment a single input of an AGL query will produce a similar result in several different geovisualization software packages simultaneously.